The present invention relates to programming languages and more particularly to techniques that facilitate development of web-based applications executable by a client.
A wide variety of application modeling frameworks are used to reduce the time and effort spent in developing software applications, especially business applications. One such modeling framework is SAP NetWeaver™ Visual Composer (“Visual Composer”) from SAP®, Germany. Visual Composer facilitates model-driven content development that enables applications to be created easily. In one application, Visual Composer provides a powerful framework that facilitates the creation of content, for example for SAP Enterprise Portal, using modeling capabilities and a visual user interface that enables applications to be created without manually writing code (code-free creation of applications). It provides sophisticated, yet simple-to-use tools for creating portal snippets (e.g., SAP iViews) that process data from back-end systems, including SAP and third-party enterprise systems. Visual Composer reduces the effort to create applications, allows reuse of already existing applications, and reduces costs for maintenance. Visual Composer is a fully Web-based application allowing (virtual) teams to easily build or customize pages and iViews as needed, accessing the software from virtually any machine worldwide.
Extensible application modeling frameworks such as Visual Composer have to present a programming model to enable developers to access, manipulate, and extend the underlying application model. Further, these tools are typically client-side tools that have to work within a browser. They also need to support distributed development and evolution of modeling languages across separate teams.
Historically, such modeling frameworks have used languages such as ECMAScript Language (defined in the official ECMA-262 standard, popularly known as “JavaScript”) for programming. For example, in the past Visual Composer used JavaScript, primarily because it is universally prevalent, available on almost all client machines, and widely known by Web developers, especially those from the Java community. However, JavaScript has several limitations that impact its effectiveness as a programming language for use with a modeling framework such as Visual Composer. For example, JavaScript is object-based but not object-oriented. It does not support concepts such as events, properties, transactions, aspects, and the like. It does not have a namespaces mechanism—all program entities reside in the same global space. JavaScript objects are also difficult to persist and JavaScript code is difficult to load on demand. As a result, the use of JavaScript for application development has several limitations.
Accordingly, a language and techniques are desired that are better suited for use with modeling frameworks, and with other software tools in general.